
import java.util.*;

class MyStack {
    public Deque<Integer> qu1;
    public Deque<Integer> qu2;


    public MyStack() {
        qu1=new LinkedList<>();
        qu2=new LinkedList<>();

    }
    
    public void push(int x) {
     if(empty()){
         qu1.offer(x);
         return;
     }
     if(!qu1.isEmpty()){
         qu1.offer(x);
     }else{
         qu2.offer(x);
     }

    }
    
    public int pop() {
        if(empty()){
            return -1;
        }
        if(qu2.isEmpty()){
            int size=qu1.size();
            for(int i=0;i<size-1;i++){
                qu2.offer(qu1.poll());
            }
          return qu1.poll();
        }
     else{
            int size=qu2.size();
            for(int i=0;i<size-1;i++){
                qu1.offer(qu2.poll());
            }
            return qu2.poll();
        }


    }
    


 public int top() {
        if(empty()){
            return -1;
        }
        int x=0;
        if(qu2.isEmpty()){
            int size=qu1.size();
            for(int i=0;i<size;i++){
                x=qu1.poll();
                qu2.offer(x);

            }
            return x;
        } else{
            int size=qu2.size();
            for(int i=0;i<size;i++){
                x=qu2.poll();
                qu1.offer(x);
            }
            return x;
        }

    }
    public boolean empty() {
        return qu1.isEmpty()&&qu2.isEmpty();

    }
    public void fun(){
     qu1.pop();
    }
}